ananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananas
